www.gusucode.com > 24Beta 虚拟主机版 1.0.0 Beta源码程序 > 24Beta 虚拟主机版 1.0.0 Beta源码程序/24Beta-1.0.0-vhost/library/framework/db/schema/sqlite/CSqliteCommandBuilder.php
<?php /** * CSqliteCommandBuilder class file. * * @author Qiang Xue <qiang.xue@gmail.com> * @link http://www.yiiframework.com/ * @copyright Copyright © 2008-2009 Yii Software LLC * @license http://www.yiiframework.com/license/ */ /** * CSqliteCommandBuilder provides basic methods to create query commands for SQLite tables. * * @author Qiang Xue <qiang.xue@gmail.com> * @version $Id: CSqliteCommandBuilder.php 840 2009-03-15 22:36:06Z qiang.xue $ * @package system.db.schema.sqlite * @since 1.0 */ class CSqliteCommandBuilder extends CDbCommandBuilder { /** * Generates the expression for selecting rows with specified composite key values. * This method is overridden because SQLite does not support the default * IN expression with composite columns. * @param CDbTableSchema the table schema * @param array list of primary key values to be selected within * @param string column prefix (ended with dot) * @return string the expression for selection * @since 1.0.4 */ protected function createCompositeInCondition($table,$values,$prefix) { $keyNames=array(); foreach(array_keys($values[0]) as $name) $keyNames[]=$prefix.$table->columns[$name]->rawName; $vs=array(); foreach($values as $value) $vs[]=implode("||','||",$value); return implode("||','||",$keyNames).' IN ('.implode(', ',$vs).')'; } }